
var step1=new Object();
step1.roles="";
step1.deptIds=[];
step1.projectTypeNo = $("#projectTypeNo").val();
step1.projectId=$("#projectId").val();
step1.projectStatus = $("projectStatus").val();

step1.data = "";

    step1.init=function(basePath){
        $("#isChecked").attr("checked", false);
       step1.basePath=basePath;

        //选择单位
        step1.initDepartment();

        //保存基本信息
        step1.saveProjectBasic();

        window.groupTreeCheckbox_search = step1.groupTreeChecked;

    }
    //子节点取消选中
    step1.dis_node = function (treeObj,node) {
        treeObj.checkNode(node, false, false, true);
        var children = node.children;
        if(children){
            for(var j=0; j< children.length; j++) {
                step1.dis_node(treeObj,children[j]);
            }
        }
    };

    //将子节点选中
    step1.slelect_node = function (treeObj,node) {


        treeObj.checkNode(node, true, true, true);
        var children = node.children;
        if(children){
            for(var j=0; j< children.length; j++) {
                step1.slelect_node(treeObj,children[j]);
            }
        }
    };
    
    step1.groupTreeChecked  = function(treeObj,treeNode){
        if(!$("#isChecked").is(":checked")){
            var nodes = treeNode.children;
            if(nodes){
                for(var i=0; i< nodes.length; i++) {
                    if(nodes[i] && nodes[i].type == 2){
                        step1.dis_node(treeObj,nodes[i]);
                    }
                }
            }
        }
    }

    step1.groupTreeUnChecked = function (treeObj,treeNode) {
        var nodes = treeNode.children;
        if(nodes){
            for(var i=0; i< nodes.length; i++) {
                if(nodes[i]){
                    step1.slelect_node(treeObj,nodes[i]);
                }
            }
        }
    }

    step1.checkNodes = function () {
        if($("#isChecked").is(":checked")){
            groupTreeCheckbox.init({"ifShow":"true"});
        }else{
            groupTreeCheckbox.init({"ifShow":"false"});
        }
    }


     //初始化受训单位列表
      step1.initDepartment=function() {
          $("#department_select2").select2();
          $.ajax({
              url: appPath+ '/admin/project_create/private/trainDepartment',
              dataType: 'json',
              type:'get',
              success:function (data) {
                  var list = data.result;
                  $("#department_select2").select2({
                      tags:true,
                      data:list,
                      multiple:true,
                      placeholder:"请选择受训单位",
                      language:"zh-CN"
                  })

                  //发送异步请求项目下已有的单位
                  $.ajax({
                      url: appPath + '/admin/project_create/private/projectDepartment',
                      dataType: 'json',
                      type:'get',
                      data:{"projectId":step1.projectId},
                      success:function (data) {
                          var list=data.result;
                          var len=list.length;
                          var inner = "", item;
                          step1.data = data;
                          // 组装数据
                          for(var i=0; i< len; i++) {
                              item = list[i];
                              step1.deptIds.push(item.deptId)
                          }
                          $("#department_select2").val(step1.deptIds).trigger("change");
                          step1.initData(data);
                          //点击小X触发，取消树中节点的勾选状态
                          step1.deleteDept();
                      }

                  })
              }

          })

    }
    step1.selectDept=function(){
        //得到最新的受训单位数据
        var departments = $("#department_select2").select2("data");
        step1.getNewDate(departments);
        $('.por').addClass('show');

    };

    //隐藏树下拉框
    step1.close = function(event){
        $('.por').removeClass('show');
    }
    // 确定受训角色
    step1.finish = function(){
        var arr_ = [];
        var treeObj = $.fn.zTree.getZTreeObj("group_tree");
        var checkedNodes = treeObj.getCheckedNodes(true);
        if(checkedNodes.length==0){
            layer.msg("请选择受训单位",{time : 1000});
            return;
        }

        for(var i=0; i<checkedNodes.length; i++){
            var companyId = checkedNodes[i].companyId;
            var departmentId = checkedNodes[i].departmentId;
            var name = checkedNodes[i].name;
            if(checkedNodes[i].departmentId == undefined || '' == checkedNodes[i].departmentId ){
                arr_.push(checkedNodes[i].companyId);
            }else{
                arr_.push(checkedNodes[i].departmentId);
            }

        }
        $("#department_select2").val(arr_).trigger("change");
        step1.close();
    }

    //点击小X触发，取消树中节点的勾选状态
    step1.deleteDept = function () {
        $(document).delegate('.select2-selection__choice__remove','click',function(){
            var id = $(this).parent().attr('id');
            var status =$("#projectStatus").val();
            if (status=='3' ||status=='2' ){
                if ( step1.deptIds.indexOf(id)>-1){
                    layer.alert("进行中和未开始的项目不能删除已有受训单位！")
                    $("#department_select2").val(step1.deptIds).trigger("change");
                }else{}

            }else {
                var treeObj = $.fn.zTree.getZTreeObj(tree_options.id);
                var node = treeObj.getNodeByParam("id", id, null);
                node.checked = false ;
                treeObj.updateNode(node);
            }
        })
    }

      //弹窗选择部门后回调
      step1.getDept = function (depatements) {
        // 组装数据
        for(var i=0; i< depatements.length; i++) {
            if(step1.repeatDept(depatements[i],step1.deptIds)){
            step1.deptIds.push(depatements[i])
            }
        }

    }

step1.initData = function (data) {
    var result = data.result;
    var treeObj = $.fn.zTree.getZTreeObj("group_tree");
    //初始化默认所选单位选中状态
    for(var i = 0; i< result.length ;i++){
        var companyId = result[i].companyId
        var deptId = result[i].deptId;
        var node = treeObj.getNodeByParam("id", deptId, null);
        if(node!=null){
            node.checked = true ;
            treeObj.updateNode(node);
        }

    }
}

    // 保存项目基本信息
    step1.saveProjectBasic=function(){
        $("#next").click(function(){
            var $this = $(this);
                var isTakeExam = $('input[name="isTakeExam"]:checked').val();   // 抽考方式 1比例抽考；2不限定人数抽考；3不是抽考项目
                var takeExamRate = $("#takeExamRate").val();    // 抽考百分比
                // 2不限定人数抽考项目 不用选择受训单位
                var departments = '';
                if('2' != isTakeExam){
                    departments = $("#department_select2").select2("data");
                    departments = step1.assembleDate(departments);   //受训单位数组
                }
                var id = $("#projectId").val();                                //项目主键
                var projectTypeNo = $("#projectTypeNo").val();                 //项目类型
                var trainType = $("#trainType").val();                         //培训类型
                var project_train_info = "";                                   //培训项目详情json(培训时间)
                var project_exam_info = "";                                    //考试项目详情json(考试时间、考试次数)
                var beginTime = $("#examBeginTime").val().substring(0,10)+" 00:00:00";                  //项目开始时间
                var endTime = $("#examEndTime").val().substring(0,10)+" 23:59:59";                      //项目结束时间
                var trainBeginTime = "";
                var trainEndTime = "";
                var examBeginTime = $("#examBeginTime").val()+":00";
                var examEndTime = $("#examEndTime").val()+":00";
                var intRetestTime = ('3' == isTakeExam ? '100' : '1'); // 考试次数 默认1次，不限定抽考可多次
                var isSimulated = "2";     // 是否允许模拟考试：1允许，2不允许

                project_train_info1 = {
                    "beginTime": beginTime,
                    "endTime": endTime
                };
                project_train_info = JSON.stringify(project_train_info1);
                //包含考试项目
                // if (step1.permissionExam) {
                    project_exam_info1 = {
                        "beginTime": $("#examBeginTime").val()+":00",
                        "endTime": $("#examEndTime").val()+":00",
                        "count": "1"    // 考试次数 默认1次
                    };
                    project_exam_info = JSON.stringify(project_exam_info1);

                // }
                var projectName = $("#projectName").val();                        //项目名称

                // 自动计算学员项目周期 = 项目结束时间-项目开始时间
                var start = Date.parse(beginTime.replace(/-/g, '/')) / 86400000;
                var end = Date.parse(endTime.replace(/-/g, '/')) / 86400000;
                var trainPeriod = Math.abs(start - end);                                                   //项目周期
                     trainPeriod = Math.ceil(trainPeriod);
                var id = $("#projectId").val();                                                            //项目主键
                var createUser = $("#createUser").val();                                                   //创建用户
                var createTime = $("#createTime").val();                                                   //创建时间
                var operUser = $("#operUser").val();                                                       //操作用户
                var operTime = $("#operTime").val();                                                       //操作时间

                var content = $("#content").val();                                                          // 备注;
                var params = {
                    'id': id,                                               //主键
                    'projectStatus': $("#projectStatus").val(),                        //项目状态
                    'projectName': projectName, 							// 项目名称
                    'projectType': projectTypeNo, 							// 项目类型
                    'trainType': trainType, 							  // 培训类型
                    'trainPeriod': trainPeriod, 							// 项目开始时间
                    'projectTrainInfo': project_train_info,               // 培训项目时间
                    'project_train_info': project_train_info,               // 培训项目时间
                    'projectExamInfo': project_exam_info,                 // 考试项目信息
                    'project_exam_info': project_exam_info,                 // 考试项目信息
                    'trainBeginTime': beginTime,                       // 培训开始时间
                    'trainEndTime': endTime,                           // 培训结束时间
                    'examBeginTime': examBeginTime,                         // 考试开始时间
                    'examEndTime': examEndTime,                             // 考试结束时间
                    'intRetestTime': intRetestTime,                         // 考试次数
                    'createUser': createUser,                              // 创建用户
                    'createTime': createTime,                              // 创建时间
                    'projectOpen':'1',                                     // 项目开启状态
                    'operUser': operUser,                                  // 操作用户
                    'operTime': operTime,                                  // 操作时间
                    'departments': departments,                              // 受训单位
                    'isSimulated': isSimulated,                              // 是否允许模拟考试：1允许，2不允许
                    'isTakeExam': isTakeExam,                               // 抽考方式  1比例抽考；2不限定人数抽考；3不是抽考项目
                    'takeExamRate':takeExamRate,                            // 抽考百分比
                    'content':content                                       // 备注
                };
                //保存项目信息
                step1.saveProject(params);
        });
    }
       //发送异步保存项目信息
      step1.saveProject = function (params) {
          if(!step1.verify())return;
          var url = appPath + '/admin/project_create/private/save';
          // 修改项目
          if($("#createOrUpdate").val() == 'update'){
              params.projectId =  step1.projectId,
                  url = appPath + '/admin/project_create/private/updateProject';
          }
         $.ajax({
            dataType: 'json',
            url: url,
            async: false,
            type: 'post',
            data:params,
            success:function (data) {
                 var code=data.code;
                if(10000==code){
                    // isCenterTrain 0线上项目；1集中培训；2比例抽考;3不限定抽考
                    var isCenterTrain = '1';
                    var isTakeExam = $('input[name="isTakeExam"]:checked').val();   // 抽考方式 1比例抽考；2不限定人数抽考；3不是抽考项目
                    if('1' == isTakeExam){
                        isCenterTrain = '2';
                    }else if('2' == isTakeExam){
                        isCenterTrain = '3';
                    }
                    window.location.href=appPath+"/admin/project_create/private/step2?projectTypeNo="+params.projectType+"&projectId="+params.id+"&projectStatus="+params.projectStatus + "&isCenterTrain=" + isCenterTrain;
                 }
                }
          })
      }



    step1.verifyTakeExamRate=function(value) {
        var value_ = $.trim(value);
        //如果不是正整数
        // var reg = /^[1-9]\d*$/;
        // 0到100之间保留一位小数点
        var reg = /^(\d|[1-9]\d|100)(\.\d{1,1})?$/;
        if(!reg.test(value_) || value_ > 100 || value_ < 0){
            $("#takeExamRate").val('');
            return;
        }
    }


    //是否按一定比例进行抽考
    step1.ifTakeExam=function(value) {
        if(value=='2'){
            $("#divTakeExamRate").hide();
            $("#takeExamRate").val('');
            $("#trainCompanyDiv").hide();
        } else {
            $("#divTakeExamRate").show();
            $("#trainCompanyDiv").show();
        }
    }

    // 校验
    step1.verify = function(){
        // 错误信息
        var msg = "";
        // 项目名称
        var projectName = $.trim($("#projectName").val());
        if(!projectName){
            msg = "请填写项目名称";
            layer.msg(msg);
            return false;
        }
        if(projectName.length > 40){
            msg = "项目名称不得超过40个字符";
            layer.msg(msg);
            return false;
        }

        // 考试开始时间
        var examBeginTime = $.trim($("#examBeginTime").val());
        if(!examBeginTime){
            msg = "请选择考试开始时间";
            layer.msg(msg);
            return false;
        }
        // 考试结束时间
        var examEndTime = $.trim($("#examEndTime").val());
        if(!examEndTime){
            msg = "请选择考试结束时间";
            layer.msg(msg);
            return false;
        }

        // 抽考百分比
        var isTakeExam = $('input[name="isTakeExam"]:checked').val();   // 抽考方式 1比例抽考；2不限定人数抽考；3不是抽考项目
        if('1' == isTakeExam && '' == $("#takeExamRate").val()){
            msg = "请填写抽考百分比";
            layer.msg(msg);
            return false;
        }

        //受训单位(不限定人数抽考项目 不用选择受训单位)
        var department_select2 = $("#department_select2").val();
        if('2' != isTakeExam && (department_select2==null || department_select2=='')){
            msg = "请选择受训单位";
            layer.msg(msg);
            return false;
        }
        return true;
    };



          //判断字符串是否包含某字符
          step1.isContains=function(str,substr){
              return new RegExp(substr).test(str);
          }
          //封装角色和受训单位数据
         step1.assembleDate=function(datas){
             var sbingDatas=[];
                 for (var i = 0; i < datas.length; i++) {
                     var object = new Object();
                     object.id = datas[i].id;
                     object.text = datas[i].text;
                     object.type = datas[i].type;
                     sbingDatas.push(object)
                 }
              return JSON.stringify(sbingDatas);
         }
        //得到最新的受训单位数据
        step1.getNewDate=function(datas){
            var deptDatas = [];
            for(var i = 0;i<datas.length;i++){
                deptDatas.push(datas[i].id);
            }
            step1.deptIds = deptDatas;
        }
        //去除重复的受训角色
        step1.repeatDept=function(id,depatements){
            var flag=true;
            for (var i=0;i<depatements.length;i++){
                if(depatements[i]==id){
                    flag=false;
                }
            }
            return flag;
        }